GPT3_API_KEY = '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'
GPT3_ENGINE = 'gpt-3.5-turbo-instruct'


class GPT3_CONFIG:
    def __init__(
        self,
        engine=GPT3_ENGINE,
        max_tokens=1024,
        temperature=0.7,
        top_p=0.5,
        frequency_penalty=0,
        presence_penalty=2,
        stop_sequences=["\n\n", "\n16", "16.", "16 ."],
        logprobs=1,
        n=1,
        best_of=1,
        api_key=GPT3_API_KEY,
        retries=3,
        organization=None
    ):
        self.engine = engine
        self.max_tokens = max_tokens
        self.temperature = temperature
        self.top_p = top_p
        self.frequency_penalty = frequency_penalty
        self.presence_penalty = presence_penalty
        self.stop_sequences = stop_sequences if stop_sequences is not None else []
        self.logprobs = logprobs
        self.n = n
        self.best_of = best_of
        self.api_key = api_key
        self.retries = retries
        self.organization = organization


GPT4_API_KEY = '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'
GPT4_ENGINE = 'gpt-4-turbo-preview'


class GPT4_CONFIG:
    def __init__(
        self,
        engine=GPT4_ENGINE,
        max_tokens=1024,
        temperature=0.7,
        top_p=0.5,
        frequency_penalty=0,
        presence_penalty=2,
        stop_sequences=["\n\n", "\n16", "16.", "16 ."],
        logprobs=1,
        n=1,
        best_of=1,
        api_key=GPT4_API_KEY,
        retries=3,
        system_prompt="You are a helpful assistant, and you should answer questions as clearly and concisely as possible",
    ):
        self.engine = engine
        self.max_tokens = max_tokens
        self.temperature = temperature
        self.top_p = top_p
        self.frequency_penalty = frequency_penalty
        self.presence_penalty = presence_penalty
        self.stop_sequences = stop_sequences if stop_sequences is not None else []
        self.logprobs = logprobs
        self.n = n
        self.best_of = best_of
        self.api_key = api_key
        self.retries = retries
        self.system_prompt = system_prompt


MOONSHOT_API_KEY = 'sk-26HaIgGrRMDLdPku4ooFSiXNhvf0Jb0c35m6tFCJRYNMsCPx'
KIMI_ENGINE = "moonshot-v1-8k"


class KIMI_CONFIG:
    def __init__(
        self,
        engine=KIMI_ENGINE,
        max_tokens=1024,
        temperature=0.7,
        top_p=0.5,
        frequency_penalty=0,
        presence_penalty=2,
        stop_sequences=["\n\n", "\n16", "16.", "16 ."],
        logprobs=1,
        n=1,
        best_of=1,
        api_key=MOONSHOT_API_KEY,
        retries=3,
        system_prompt="你是 Kimi，由 Moonshot AI 提供的人工智能助手，你更擅长中文和英文的对话。你会为用户提供安全，有帮助，准确的回答。同时，你会拒绝一切涉及恐怖主义，种族歧视，黄色暴力等问题的回答。Moonshot AI 为专有名词，不可翻译成其他语言。",
    ):
        self.engine = engine
        self.max_tokens = max_tokens
        self.temperature = temperature
        self.top_p = top_p
        self.frequency_penalty = frequency_penalty
        self.presence_penalty = presence_penalty
        self.stop_sequences = stop_sequences if stop_sequences is not None else []
        self.logprobs = logprobs
        self.n = n
        self.best_of = best_of
        self.api_key = api_key
        self.retries = retries
        self.system_prompt = system_prompt


NVIDIA_API_KEY = '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'
LLAMA3_ENGINE = "meta/llama3-70b-instruct"


class LLAMA3_CONFIG:
    def __init__(
            self,
            engine=LLAMA3_ENGINE,
            max_tokens=1024,
            temperature=1.0,
            top_p=0.5,
            frequency_penalty=0,
            presence_penalty=2,
            stop_sequences=["\n\n", "\n16", "16.", "16 ."],
            logprobs=1,
            n=1,
            best_of=1,
            api_key=NVIDIA_API_KEY,
            retries=3,
            ):
        self.engine = engine
        self.max_tokens = max_tokens
        self.temperature = temperature
        self.top_p = top_p
        self.frequency_penalty = frequency_penalty
        self.presence_penalty = presence_penalty
        self.stop_sequences = stop_sequences if stop_sequences is not None else []
        self.logprobs = logprobs
        self.n = n
        self.best_of = best_of
        self.api_key = api_key
        self.retries = retries